#!/usr/bin/env node
const fs = require('fs');
const archiver = require('archiver');
const bzipConfig = require('./.bzip.config.js')

// 目标文件夹路径
const sourceFolder = bzipConfig.distUrl;
// 输出的zip文件路径
const outputZip = bzipConfig.outputDir;

async function main() {
  try {
    // 创建一个可写流指向输出文件
    const output = fs.createWriteStream(outputZip);
    const archive = archiver('zip', { zlib: { level: 9 } }); // 使用zip格式，设置压缩级别为最高等级

    // 监听archive数据写入完成事件
    output.on('close', () => {
      console.log(`Archive created ${outputZip}, size ${archive.pointer()} bytes`);
    });

    // 监听archive错误事件
    archive.on('error', (err) => {
      throw err;
    });

    // 设置压缩源和目标
    archive.directory(sourceFolder, false); // 第二个参数设为false表示保留源目录结构

    // 将archive数据写入输出文件流
    archive.pipe(output);

    // 开始压缩并结束流
    await archive.finalize();
  } catch (error) {
    console.error('An error occurred:', error);
  }
}

main().then((r) => {
});
